home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
pctecap.arc
/
SUPEREN.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-03-15
|
2KB
|
70 lines
PAGE
PAGE 72,120
TITLE SUPEREN Change name of file, sub-dir or vol ID.
COMMENT " SUPEREN [d:]name1 name2
Renames files or subdirectories from name 1 to name2.
Name1 & name2 may have extensions and wild characters.
Action of the program is as described in the DOS manual
for INT 21, function 17.
"
COM SEGMENT
ASSUME CS:COM, DS:COM, ES:COM, SS:COM
ORG 5CH ;FCB FORMED FROM NAME1
FCB1 LABEL BYTE
DRIVE1 DB ?
NAME1 DB 11 DUP(?)
ORG 6CH ;FCB FORMED FROM NAME2
FCB2 LABEL BYTE
DRIVE2 DB ?
NAME2 DB 11 DUP(?)
ORG 100H
SUPEREN PROC
MOV DX,OFFSET INVDR$ ;POINT TO ERROR MESSAGE
TEST AL,AL ;TEST FOR VALID DRIVE1 ID
JNZ ERROR
MOV DX,OFFSET INVPAR$
CMP NAME1,' ' ;CHECK IF NAME1 IS THERE
JE ERROR
CMP NAME2,' ' ;CHECK FOR NAME 2
JE ERROR
MOV SI,OFFSET FCB1 ;POINT TO NAME1 FCB
MOV DI,OFFSET OLDN ;POINT TO OLD NAME FIELD
MOV CX,12 ;MOVE 12 BYTES
REP MOVSB ;MOVE NAME1 TO EXTENDED FCB
MOV SI,OFFSET NAME2 ;POINT TO NAME2, NOT DRIVE
MOV DI,OFFSET OLDN+11H ;POINT TO NEW NAME FIELD
MOV CX,11 ;NAME EX DRIVE = 11 BYTES
REP MOVSB ;MOVE NAME2 TO EXTENDED FCB
MOV DX,OFFSET XFCB ;POINT DX TO EXTENDED FCB
MOV AH,17H ;FUNCTION 17 = RENAME
INT 21H
TEST AL,AL ;TEST FOR ERRORS
JZ EXIT ;NO ERRORS IF AL = 0
MOV DX,OFFSET INVNAM$ ;ELSE POINT TO ERROR MSG
ERROR: MOV AH,9 ;DISPLAY ERROR MESSAGE
INT 21H
EXIT: INT 20H ;RETURN TO DOS
SUPEREN ENDP
INVDR$ DB 0DH,0AH,'Invalid drive id$',0DH,0AH,'$'
INVPAR$ DB 0DH,0AH,'2 params needed: [d:]oldname, newname'
DB 0DH,0AH,'$'
INVNAM$ DB 0DH,0AH,'Name not found or already exists'
DB 0DH,0AH,'$'
XFCB DB 0FFH ;EXTENDED FCB ID BYTE
DB 5 DUP(0)
ATTR DB 18H ;ATTR FOR SUB-DIRS & VOL LABELS
OLDN DB 37 DUP(0) ;OLD & NEW NAMES GO HERE
COM ENDS
END SUPEREN